package cn.doitedu.day02

/**
 * scala函数的多种定义方式
 */
object FunctionTest {

  def main(args: Array[String]): Unit = {

    //没有指定变量类型，可以让编译自动推断
    val i = 10
    //直接指定变量类型
    val j: Int = 10

    //输入参数格式为0，没有返回值（或者说返回Unit类型）
    val f0 = () => println(666)
    //指定了函数的类型
    val f00: () => Unit = () => println(666)

    //没有指定函数的类型，编译器自动推断
    val f1 = (x: Int) => x + x
    val f11: (Int) => Int = (x: Int) => x + x
    //函数类型如果是一个参数，可以将括号省略
    val f111: Int => Int = (x: Int) => x + x
    val f1111: Int => Int = (x) => x + x
    val f11111: Int => Int = x => x + x

    val f2 = (x: Int, y: Double) => x + y
    val f22: (Int, Double) => Double = (x: Int, y: Double) => x + y
    val f222: (Int, Double) => Double = (x, y) => x + y






  }

}
